# Support Vector Machine (SVM) Classifier
svm_classifier = SVC(kernel='linear')
svm_classifier.fit(X_train, y_train)
y_pred_svm = svm_classifier.predict(X_test) #
Evaluate classifiers
def evaluate_classifier(y_true, y_pred):
accuracy = accuracy_score(y_true, y_pred)
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)
confusion_mat = confusion_matrix(y_true, y_pred)
return accuracy, precision, recall, f1,confusion_mat
# Evaluate KNN classifier
accuracy_knn, precision_knn, recall_knn,f1_knn, confusion_mat_knn = evaluate_classifier(y_test,
y_pred_knn)
# Evaluate SVM classifier
accuracy_svm, precision_svm, recall_svm,f1_svm, confusion_mat_svm = evaluate_classifier(y_test,
y_pred_svm)
# Visualize decision boundaries
fig, axes = plt.subplots(1, 2, figsize=(12, 5))
fig.suptitle('Decision Boundaries of KNN and SVM')
# Decision boundary for KNN
plot_decision_regions(X, y, clf=knn_classifier, legend=2, ax=axes[0])
axes[0].set_title('K-Nearest Neighbors (KNN)')
# Decision boundary for SVM
plot_decision_regions(X, y,
clf=svm_classifier, legend=2, ax=axes[1])